Fuzzy logic has been applied to many different types of problems since introduced by Zadeh in 1965. Unlike Boolean logic, fuzzy logic is suited to evaluating subjective situations. For agriculture, the subjectivity of fuzzy logic is particularly appealing (Ribeiro, 1999, Wang, 1996, Zhang and Litchfield, 1991, 1994). Field conditions—weather, the position and intensity of the sun and dust, just to name a few—and crop conditions—size, shape, weed and pest pressure—combine to create a difficult situation for conventional evaluation methods. For example, given a pile of fruit, we can separate apples and oranges. If we are looking at a Jonamac apple, our description might include red, a hint of green and a mostly round shape. If we look at a Granny Smith apple, the description might include green, smooth and oblong. An orange might have an orange color, a rough texture and round as descriptors. While we can verbally describe apples and oranges, it's much more difficult to create a mathematical description of an apple or orange that will apply for all situations. The variability common in agriculture makes fuzzy logic appealing. Fuzzy logic is based on set theory. In Boolean set theory, a value either is or is not a member of a set. In fuzzy logic, the member can be partially a member of a set. For example, a Granny Smith apple is partially round. The apple might have a value of μGS(x) round and (1−μGS(x)) not round. Each element—or in this case, fruit in the pile—is evaluated independently based on a set of membership functions. The membership functions are used to describe the classes in question. The membership functions stem from the linguistic classes used to describe the items. The number of membership classes and the membership functions within the class will vary with the situation. In the fruit example, membership classes might include roundness, a color index and surface texture. Within the roundness class, there may be two functions (round/not round) while other classes (color index) may require more functions to adequately describe the situation. With Boolean logic, an element is either a member of the class (1) or it is not (0). With fuzzy logic, an element can partially belong to multiple classes. For any two fizzy sets (S1 and S2), three basic operations can be defined.
IntersectionμS1∩S2=min{μS1(u), μS2(u)}UnionμS1∩S2=max{μS1(u), μS2(u)}ComplementμS1=1−μS1
In machine vision, variability in the target and scene make fuzzy logic attractive. Machine vision is one of the primary sensors for an ongoing agricultural vehicle guidance project at the University of Illinois at Urbana—Champaign. Sensors have included machine vision, GPS, and a variety of heading sensors (Stombaugh, et al., 1998, Benson, et al., 1998, Noguchi, et al., 1998).
Sensor fusion—specifically Kalman filtering—has played an important role in the project. With an extended Kalman filter, an estimator calculates the expected states of the vehicle based on the most recent state information. An observer evaluates the sensor output and it is validated against the estimated output. A large difference between the expected and actual sensor value is indicative of a problem with the sensor or sensor processing (Hague and Tillett, 1996).
A variety of methods can be used to evaluate the output from the sensor. Noguchi, et al., (1998) described a probability density approach, in which the sensor variability was characterized a priori. A predetermined probability, however, cannot account for situational variations. An adaptive, or “on-the-fly” system, can account for changes in the scene.
An adaptive system uses flexible parameters to evaluate the sensor output. The nature of the evaluation parameter depends on the system. An internally referenced parameter, for example standard deviation of the output, can be used to detect significant outliers. An example of an adaptive evaluation system is presented in this application. An externally referenced parameter could be tied to another sensor. An example would be comparing the heading from a fiber optic gyro to the heading from a time series of GPS positions to determine whether the fiber optic gyro signals were indeed valid. In a system like this, the heading from the fiber optic gyro would provide the raw sensor data, and the time series would be the estimated sensor data, as those terms are used below.
In contrast, a fixed membership function cannot account for variability. In agriculture, weather, weeds and other field conditions can cause changes in sensor output. A fixed threshold is harshly optimistic (actual sensor output never meets the actual conditions), too generous (the system never encounters a unacceptable value), or somewhere in-between. In this application, a generic fuzzy quality analysis module is presented. The module was developed and used to evaluate simulated sensor data.
Ideally, sensors should always produce high quality, repeatable measurements. Unfortunately, real world variations can cause sensor errors. With only a single sensor, it can be difficult to tell when there is a problem with the sensor. With multiple sensors, we can begin to compare the results between sensors and determine when there is an error. The question can still remain—which sensor is “right” and which is “wrong”. What is needed is an improved method for determining whether a sensor signal is right or wrong. A sensor may not provide a signal that truly indicates a sensed parameter for many reasons. For example, the sensor or its associated circuitry may be broken. The sensor and its circuitry may not be broken, but the sensor may have been moved away from the environment it should be sensing to another environment, such as a temperature sensor that has been pulled out of its environment, or a camera that has been bumped away from its proper field of view. A sensor may be in the proper location, but may be fouled with environmental matter such as stray leaves that fly in front of a camera or an oxygen sensor in a car that has become carbon fouled.
What is needed is a method for determining whether the signal provided by a sensor is valid. It is an object of the application to provide such a method.